package com.ruoyi.api.supply;

import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.IOUtil;
import com.ruoyi.common.utils.RedisService;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.sign.Md5Utils;
import com.ruoyi.system.CommonService;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.service.*;
import org.aspectj.weaver.loadtime.Aj;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 用户中心
 */
@Controller
@RequestMapping("/api/supply/userCenter")
public class UserCenter extends SupplyBaseCtrl {

    @Autowired
    ISupplierService supplierService;
    @Autowired
    ICompanySupplyService companySupplyService;
    @Autowired
    ISupplyUserService supplyUserService;
    @Autowired
    IShopService shopService;
    @Autowired
    CommonService commonService;
    @Autowired
    RedisService redis;
    @Autowired
    ISysConfigService config;
    @Autowired
    ISysUserService sysUserService;
    @Autowired
    private SysUserMapper sysUserMapper;


    /**
     * 统计数据
     * @return
     */
    @RequestMapping("/getCountData")
    @ResponseBody
    public AjaxResult getCountData(){

        AjaxResult result = supplierService.getCountData(getLoginSupplier());
        return result;
    }

    /**
     * 注册
     * @return
     */
    @RequestMapping("/register")
    @ResponseBody
    public AjaxResult register(@RequestParam("phone")String phone, @RequestParam("pwd")String pwd, @RequestParam("code")String code) {
        //先校验万能验证码
        if(!code.equals(Constants.UNIVERSAL_CODE)){
            //验证码校验
            String key = Constants.CODE_KEY+phone;
            String code_redis = redis.getStrVal(key);
            if(code_redis==null ||!code_redis.equals(code)){
                return AjaxResult.error("验证码错误！");
            }
        }

        //判断手机号是否已注册
        Supplier sel = new Supplier();
        sel.setPhone(phone);
        List<Supplier> list = supplierService.selectSupplierList(sel);
        if(list!=null && list.size()>0){
            return AjaxResult.error("手机号已注册！");
        }
        //注册
        Supplier supplier = new Supplier();
        supplier.setPhone(phone);
        supplier.setPwd(pwd);
        AjaxResult res = supplierService.insertSupplier(supplier);
        return res;
    }
    /**
     * 发送验证码
     * @param phone
     * @return
     */
    @ResponseBody
    @RequestMapping("/sendMsg")
    public AjaxResult sendMsg(String phone) {

        String code = IOUtil.getCode(4);
        //发送验证码
        int res = commonService.sendMsg(phone, code);
        if(res <1){
            return AjaxResult.error("发送失败，请稍后再试！");
        }
        //保存验证码到redis中
        String key = Constants.CODE_KEY+phone;
        redis.setVal(key, code, Integer.parseInt(config.selectConfigByKey("codetime")));


        return AjaxResult.success();
    }

    /**
     * 编辑供应商信息
     * @param supplier
     * @return
     */
    @ResponseBody
    @RequestMapping("/editSupply")
    public AjaxResult editSupply(@RequestBody Supplier supplier) {
        //过滤信息
        supplier.setStatus(null);
        supplier.setReviewRemark(null);
        supplier.setReviewTime(null);

        SupplyUser user = getLoginSupplyUser();
        supplier.setId(user.getSupplyId());
        int res =supplierService.updateSupplier(supplier);
        refreshSupplyUser();
        return toAjax(res);
    }

    /**
     * 编辑个人信息
     * @param
     * @return
     */
    @ResponseBody
    @RequestMapping("/editSupplyUser")
    public AjaxResult editSupplyUser(@RequestBody SupplyUser supplyUser) {
        //过滤信息
        supplyUser.setStatus(null);
        supplyUser.setType(null);

        SupplyUser user = getLoginSupplyUser();
        supplyUser.setId(user.getId());
        int res =supplyUserService.updateSupplyUser(supplyUser);
        refreshSupplyUser();
        return toAjax(res);
    }

    /**
     * 登录
     * @return
     */
    @RequestMapping("/login")
    @ResponseBody
    public AjaxResult login(@RequestParam("phone")String phone,@RequestParam("pwd")String pwd) {

        //先查询sysuser表，判断是否为店铺员工
        SysUser sysUser = sysUserMapper.selectSysUserByPhone(phone);
        if(sysUser!=null){
            //判断密码
            if(SecurityUtils.matchesPassword(pwd, sysUser.getPassword())){

                String token = IOUtil.MD5(sysUser.getPhonenumber() + sysUser.getPassword() + System.currentTimeMillis());
                setLoginShop(sysUser,token);
                JSONObject result = new JSONObject();
                result.put("token", token);
                result.put("user_id", sysUser.getUserId());
                result.put("type","2");//角色标识
                return AjaxResult.success(result);
            }
        }

        //判断是否为供应商
        pwd = IOUtil.MD5(pwd);
        SupplyUser sel = new SupplyUser();
        sel.setPhone(phone);
        sel.setPwd(pwd);
        List<SupplyUser> userlist = supplyUserService.selectSupplyUserList(sel);

        if (userlist!= null && userlist.size() > 0) {
            SupplyUser user = userlist.get(0);
            if (user.getStatus().equals("Y")) {
                //登录成功,生成TOKEN，保存到redis中
                String token = IOUtil.MD5(user.getPhone() + user.getPwd() + System.currentTimeMillis());
                setLoginSupplyUser(user,token);
                JSONObject result = new JSONObject();
                result.put("token", token);
                result.put("user_id", user.getId());
                result.put("type","1");//角色标识
                return AjaxResult.success(result);
            } else {
                //账号已被禁用
                return AjaxResult.error("账号已被禁用");
            }
        } else {
            //账号或密码错误
            return AjaxResult.error("账号或密码错误");
        }
    }

    /**
     * 修改密码
     * @param oldPwd
     * @param newPwd
     * @return
     */
    @RequestMapping("/updatePwd")
    @ResponseBody
    public AjaxResult updatePwd(@RequestParam("oldPwd")String oldPwd, @RequestParam("newPwd")String newPwd) {
        SupplyUser user = getLoginSupplyUser();
        //旧密码MD5加密
        oldPwd = IOUtil.MD5(oldPwd);
        if (!user.getPwd().equals(oldPwd)) {
            return AjaxResult.error("旧密码错误");
        }
        //新密码MD5加密
        newPwd = IOUtil.MD5(newPwd);
        user.setPwd(newPwd);
        int i = supplyUserService.updateSupplyUser(user);
        if (i > 0) {
            refreshSupplyUser();
            return AjaxResult.success("修改密码成功");
        } else {
            return AjaxResult.error("修改密码失败");
        }
    }

    /**
     * 查询我的员工
     * @return
     */
    @RequestMapping("/getMyWorker")
    @ResponseBody
    public TableDataInfo getMyWorker(SupplyUser user) {

        startPage();
        if(user==null)user = new SupplyUser();
        user.setSupplyId(getLoginSupplier().getId());
        List<SupplyUser> list = supplyUserService.selectSupplyUserList(user);
        return getDataTable(list);
    }

    /**
     * 新增员工
     * @param user
     * @return
     */
    @RequestMapping("/addWorker")
    @ResponseBody
    public AjaxResult addWorker(SupplyUser user) {
        //添加归属
        user.setSupplyId(getLoginSupplier().getId());
        AjaxResult result = supplyUserService.insertSupplyUser(user);
        return result;
    }

    /**
     * 删除员工
     * @param id
     * @return
     */
    @RequestMapping("/deleteWorker")
    @ResponseBody
    public AjaxResult deleteWorker(Long id) {
        //判断用户归属
        SupplyUser user = supplyUserService.selectSupplyUserById(id);
        if(user==null)return AjaxResult.error("用户信息错误！");
        if(!user.getSupplyId().equals(getLoginSupplier().getId()))return AjaxResult.error("无权限");
        int res = supplyUserService.deleteSupplyUserById(id);
        return AjaxResult.int2Ajax(res);
    }

    /**
     * 查询我绑定的公司列表
     * @param companySupply
     * @return
     */
    @RequestMapping("/getMyCompany")
    @ResponseBody
    public TableDataInfo getMyCompany(CompanySupply companySupply) {
        startPage();
        Supplier supplier = getLoginSupplier();
        if (companySupply == null)companySupply = new CompanySupply();
        //设置自己账号
        companySupply.setSupplyId(supplier.getId());
        companySupply.setStatus("1");//只查询已绑定的
        List<CompanySupply> list = companySupplyService.selectCompanySupplyList(companySupply);
        return getDataTable(list);
    }

    /**
     * 查询店铺信息
     * @param companyId
     * @return
     */
    @RequestMapping("/getShopList")
    @ResponseBody
    public TableDataInfo getShopList(@RequestParam("companyId")long companyId) {

        Shop shop = new Shop();
        shop.setCompanyId(companyId);

        List<Shop> list = shopService.selectShopList(shop);
        return getDataTable(list);

    }

    /**
     * 查询归我的信息
     * @return
     */
    @RequestMapping("/getInfo")
    @ResponseBody
    public AjaxResult getInfo(){
        SupplyUser user = getLoginSupplyUser();
        user.setContact("13349307202");
        AjaxResult ajaxResult = AjaxResult.success(user);
        return ajaxResult;
    }

    /**
     * 查询归我归属的供应商信息
     * @return
     */
    @RequestMapping("/getSupplyInfo")
    @ResponseBody
    public AjaxResult getSupplyInfo(){
        Supplier supplier = getLoginSupplier();
        AjaxResult ajaxResult = AjaxResult.success(supplier);
        return ajaxResult;
    }

    /**
     *  解绑客户
     * @return
     */
    @RequestMapping("/unBindCustomer")
    @ResponseBody
    public AjaxResult unBindCustomer(@RequestParam("id")Long id) {
        CompanySupply companySupply = new CompanySupply();
        companySupply.setId(id);
        companySupply.setStatus("2");
        int result = companySupplyService.updateCompanySupply(companySupply);

        return toAjax(result);
    }

    /**
     * 绑定客户
     * @param code
     * @return
     */
    @RequestMapping("/bindCustomer")
    @ResponseBody
    public AjaxResult bindCustomer(@RequestParam("code")String code) {
        Supplier supplier = getLoginSupplier();
        AjaxResult ajaxResult = supplierService.bindCustomer(supplier, code);
        return ajaxResult;
    }

    /**
     * 获取协议
     * @param type 1:隐私，2：用户协议
     * @return
     */
    @ResponseBody
    @RequestMapping("/getProtocal")
    public AjaxResult getProtocal(@RequestParam("type")String type){
        String ys = "<p>小程序隐私政策</p><p><br></p><p> </p><p><br></p><p>生效日期： 2025 年 9 月11 日</p><p><br></p><p>【引言】</p><p><br></p><p><br></p><p>欢迎您使用我们的产品和服务！我们深知个人信息对您的重要性，您的信赖对我们非常重要，我们将严格遵守法律法规要求采取相应的安全保护措施，致力于保护您的个人信息安全可控。基于此，本小程序的服务提供者（或简称“ 我们 ”）制定本《隐私政策》（下称“本政策” /“ 本隐私政策”），帮助您充分了解在您使用我们产品和服务的过程中，我们会如何收集、使用、共享、存储和保护您的个人信息以及您可以如何管理您的个人信息，以便您更好地作出适当的选择。</p><p><br></p><p>在您开始使用我们的产品和服务前，请您务必先仔细阅读和理解本政策，特别应重点阅读我们以 粗体 / 粗体下划 线标识的条款，确保您充分理解和同意之后再开始使用。本政策中涉及的专业词汇，我们尽量以简明通俗的表述向您解释，以便于您理解。 如对本政策内容有任何疑问、意见或建议，您可通过本政策文末的联系方式与我们联系。</p><p><br></p><p>您同意隐私政策表示您已了解应用提供的功能，以及功能运行所需的必要个人信息，并给予相应的收集使用授权，但并不代表您已单独同意开启附加功能、处理非必要个人信息，相关附加功能的开启、处理非必要个人信息以及处理敏感个人信息，我们会根据您的实际使用情况单独征求您的同意。</p><p><br></p><p> </p><p><br></p><p>本隐私政策将帮助您了解以下内容：</p><p><br></p><p>一、适用范围</p><p><br></p><p>二、信息收集及使用</p><p><br></p><p>三、对外提供信息</p><p><br></p><p>四、您的权利</p><p><br></p><p>五、信息的存储</p><p><br></p><p>六、政策的更新</p><p><br></p><p>七、未成年人保护</p><p><br></p><p>八、联系我们</p><p><br></p><p>附录：相关定义</p><p><br></p><p> </p><p><br></p><p>一、适用范围</p><p><br></p><p>本政策适用于我们作为开发主体向您提供的小程序产品和服务。需要特别说明的是， 我们及关联公司就其向您提供的产品或服务单独设有隐私政策的，则相应产品或服务适用相应隐私政策。</p><p><br></p><p>除本政策说明的相关信息收集使用活动外，本政策不适用于其他第三方向您提供的其他服务，其他服务适用其向您另行说明的个人信息收集使用规则。</p><p><br></p><p> </p><p><br></p><p>二、信息收集及使用</p><p><br></p><p>在您使用我们的产品 / 服务时，我们需要 / 可能需要收集和使用的您的个人信息包括如下两种：</p><p><br></p><p>1. 为实现向您提供我们产品及 / 或服务的基本功能，您须授权我们收集、使用的必要的信息。 如您拒绝提供相应信息，您将无法正常使用我们的产品及 / 或服务 ；</p><p><br></p><p>2. 为实现向您提供我们产品及 / 或服务的附加功能，您可选择单独同意或不同意我们收集、使用的信息。 如您拒绝提供，您将无法正常使用相关附加功能或无法达到我们拟达到的功能效果，不会影响您使用我们的基本功能。</p><p><br></p><p> </p><p><br></p><p>我们在此特别提醒您：我们致力于打造多样的产品和服务以满足您的需求。 因我们向您提供的产品和服务种类众多，且不同用户选择使用的具体产品 / 服务范围存在差异，故基本 / 附加功能及对应收集使用的个人信息类型、范围会有所区别，请以具体的产品 / 服务功能为准 。</p><p><br></p><p> </p><p><br></p><p>我们会为您提供的各项具体功能场景包括：</p><p><br></p><p>（ 一）实现小程序提供的服务</p><p><br></p><p>1. 帮助 您 完成账户登录</p><p><br></p><p>当您进入 小程序 使用相关 服务 时， 须授权支付宝 / 微信将 您的 用户编号以及页面提示 的 相关信息提供给我们，以便我们为 您提供 产品及 / 或 服务 。</p><p><br></p><p>2. 为您提供商品 及 服务信息展示 和搜索</p><p><br></p><p>在您使用我们服务过程中，为识别账号异常状态、了解产品适配性、向您提供更契合您需求的页面展示和搜索结果，我们可能会自动收集您的使用情况并存储为网络日志信息，包括设备信息和服务日志信息。</p><p><br></p><p>请注意，单独的设备信息、服务日志信息及您搜索的关键词信息是无法识别您的身份 。 我们有权以任何的目的对其进行使用；如果我们将这类非个人信息、搜索关键词信息与您的其他信息相互结合使用并可以识别您的身份时，则在结合使用期间，我们会将这类非个人信息及您的搜索关键词信息作为您的用户信息，与您的搜索历史记录一同按照本隐私政策对其进行处理与保护。 除取得您授权或法律法规另有规定外，我们会将这类信息做匿名化、去标识化处理。 &nbsp;</p><p><br></p><p>3. 帮您完成交易</p><p><br></p><p>（ 1 ）位置</p><p><br></p><p>当您使用我们的服务进行交易时，我们会收集您的 位置信息 ，用于展示附近门店、为您匹配点餐的门店、选择储值门店。</p><p><br></p><p>（ 2 ）确认送餐、取餐、购买等订单信息</p><p><br></p><p>在您准备使用我们的自助点餐外送服务时，您需要在订单中至少填写您的收货人姓名、收货地址和手机号码，同时该订单中会载明订单号、您所点购的餐点或购买的商品或服务信息、您应支付的货款金额及支付方式。</p><p><br></p><p>上述所有信息构成您的“订单信息”。我们将使用您的订单信息来进行您的身份核验，确定交易支付结算、完成配送、为您查询订单以及提供客服咨询和售后服务。我们还会使用您的订单信息来判断您的交易是否存在异常以保护您的交易安全。</p><p><br></p><p>您在本小程序上生成的订单中，将可能包含您的身份信息、联络信息、地址信息、支付信息等这些都属于个人敏感信息。请您谨慎向他人展示或对外提供，我们也将会在展示订单信息时，在保证信息可用性的基础上尽量去标识化处理。</p><p><br></p><p>若您向我们提供他人的送餐 / 收货地址及个人信息，您需确保已经取得他人的合法授权且他人知晓并同意我们的隐私条款，并将由您承担因此产生的法律责任，如因此导致我们承担法律责任的，我们将有权向您追偿。</p><p><br></p><p>（ 3 ）支付功能</p><p><br></p><p>在您下单后您可以选择与我们合作的第三方支付机构（包括支付宝、微信支付等支付通道以下简称“支付机构” ) 或银行所提供的支付服务。第三方支付机构或银行可能需要收集您的姓名、银行卡类型及卡号、有效期及手机号码等实现支付功能所必需的信息，拒绝提供将导致您无法使用该功能，但不影响其他功能的正常使用。我们不会收集和存储您的完整银行卡信息，但我们需要将您的订单号与交易金额信息与这些支付机构共享以实现其确认您的支付指令并完成支付。 我们会将您提供的前述信息与您选择的相应金融机构、第三方支付公司共享，具体请参见本政策三、对外提供信息部分 。</p><p><br></p><p>（ 4 ）实名认证</p><p><br></p><p>基于某些业务的法律要求，可能会要求您完成实名认证，我们会提供您的身份证件信息或者面部信息协助您完成实名认证。</p><p><br></p><p>4. 成为会员</p><p><br></p><p>当你选择注册成为我们的会员时 ，您需要 根据页面提示授权我们获取 您 主动 提供的 手机号 相关信息 或以支付宝 / 微信账号登录时，授权我们获取账号相关手机号、昵称、头像相关信息，具体授权字段以页面展示为准。如您拒绝加入会员，我们仅收集您 的 昵称、头像用于在多人餐点场景下对您提供点餐服务；以及您的位置信息用于为您匹配点餐门店 。</p><p><br></p><p>您可以选择进入个人中心完善您的个人信息，包括您的姓名、性别、生日。在您拒绝入会场景，您也可以通过进入个人中心，点击账号 - 绑定手机号进行会员注册。</p><p><br></p><p>我们将通过手机号识别您的会员身份，按照相关会员服务协议为您提供会员服务，包括但不限于推荐优惠信息、提供会员点餐服务、享受会员优惠价等，我们会根据您提供的信息对您的喜好进行分析，并向您提供个性化推荐，从而向您推荐您可能感兴趣的商品或向您发送优惠信息，您同意我们通过您提供的手机号向您发送前述商业短信。</p><p><br></p><p>5. 提供个性化服务</p><p><br></p><p>我们将根据您提供的个人信息对您的喜好进行分析，您同意我们使用您个人信息向您推销 / 推广我们或合作方的产品、服务。如您拒绝接受此类商业推广，可按推广内容中提供的方式进行退订或本隐私政策提供的方式联系我们进行退订。</p><p><br></p><p>（二）改进我们的产品与 / 或服务</p><p><br></p><p>我们会收集您的订单信息、浏览信息进行数据分析以提高我们的系统服务</p><p><br></p><p>（三）客服及争议处理</p><p><br></p><p>当您与我们联系或提出其他处理申请时，为了保障您的账户及系统安全， 我们需要您提供必要的个人信息以核验您的身份。</p><p><br></p><p>为便于与您联系、尽快帮助您解决问题或记录相关问题的处理方案及结果，我们可能会保存您与我们的通信 / 通话记录及相关内容（包括 账号 信息、 店铺 信息、软硬件设备信息、订单信息、您为了证明相关事实提供的其他信息，或您留下的联系方式信息 ）， 如果您针对具体订单进行咨询、投诉或提供建议的，我们会使用您的 账号信息和订单信息。当您反映的问题需要第三方服务提供方核实处理的，您允许我们将必要的账号信息和订单信息等提供给对应的第三方服务提供方 。</p><p><br></p><p>为了提供服务及改进服务质量的合理需要，我们还可能使用的您的其他信息，包括您与客服联系时您提供的相关信息，您参与问卷调查时向我们发送的问卷答复信息。</p><p><br></p><p>（四 ） 为您提供安全保障</p><p><br></p><p>为履行保障电子商务交易安全的法定义务，提高您使用我们及我们关联公司、合作伙伴提供服务的安全性，保护您或其他用户或公众的人身财产安全免遭侵害，更好地预防钓鱼网站、欺诈、网络漏洞、计算机病毒、网络攻击、网络侵入风险，更准确地识别违反法律法规或与我们签署的相关协议、规则的情况，我们在应用程序中嵌入我们关联公司开发的应用安全 SDK 收集您的设备信息、服务日志信息，并可能使用或整合您的会员信息、交易信息、设备信息、服务日志信息以及我们关联公司、合作伙伴取得您授权或依据法律共享的信息（其中，我们可能会在应用后台运行期间收集 MAC 地址、 IMEI 及其他设备标识符进行风险校验），来综合判断您账户及交易风险、进行身份验证、检测及防范安全事件，并依法采取必要的记录、审计、分析、处置措施。</p><p><br></p><p>（五 ） 为您提供的其他附加服务</p><p><br></p><p>1 ．基于系统权限的附加服务</p><p><br></p><p>为向您提供更便捷、更优质的产品及 / 或服务，努力提升您的体验，我们在向您提供的以下附加服务中可能会通过开启系统权限以收集和使用您的个人信息。 如果您不同意开启相关权限，不会影响您使用小程序的基本服务 ，但您可能无法获得这些附加服务给您带来的用户体验。</p><p><br></p><p>您可在您的设备设置或我们客户端“我的—隐私—系统权限”中逐项查看权限的状态并可自行决定这些权限随时的开启或关闭。</p><p><br></p><p>请您注意，您开启任一权限即代表您授权我们可以收集和使用相关个人信息来为您提供对应服务，您一旦关闭任一权限即代表您取消了授权，我们将不再基于对应权限继续收集和使用相关个人信息，也无法继续为您提供该权限所对应的服务。您关闭权限的决定不会影响此前基于您的授权所进行的信息收集及使用 。</p><p><br></p><p>您可 点击此处 查看应用权限申请与使用情况说明 。</p><p><br></p><p> </p><p><br></p><p>2. Cookie 和同类技术的服务</p><p><br></p><p>Cookie 和同类设备信息标识技术是互联网中普遍使用的技术。当您使用我们的服务时，我们可能会使用相关技术向您的设备发送一个或多个 Cookie 或匿名标识符（以下简称“ Cookie” ），以收集、标识和存储您访问、使用本产品时的信息。我们承诺，不会将 Cookie 用于本隐私政策所述目的之外的任何其他用途。我们使用 Cookie 主要为了保障产品与服务的安全、高效运转，可以使我们确认您账户与交易的安全状态，排查崩溃、延迟的相关异常情况。</p><p><br></p><p>大多数浏览器均为用户提供了清除浏览器缓存数据的功能，您可以进行相应的数据清除操作，或可修改对 Cookie 的接受程度或拒绝我们的 Cookie 。您可能因为这些修改，无法使用依赖于 Cookie 的服务或相应功能。</p><p><br></p><p> </p><p><br></p><p>（六）其它</p><p><br></p><p> &nbsp;1. 您知悉并同意，为向您介绍服务，维护、改进我们的产品或服务质量，我们会收集您的崩溃日志、操作日志、员工操作日志、设备信息进行数据分析以提高我们的系统稳定性。我们可能通过小程序页面向您发送消息通知，或使用您的注册的手机号或您授权接受信息的其他手机号向您发送商业性信息短信、进行电话回访或邀请您参与服务、产品或功能有关的客户调研。我们努力提升您的使用体验。如果您不想接受我们给您发送的商业性信息，您可通过短信提示回复退订或我们提供的其他方式进行退订或关闭。 如果您不希望接受电话回访或客户调研，您可电话中明确表示拒绝 。</p><p><br></p><p>2. 您应保证在使用本小程序服务中所提供的一切数据信息均为真实，且经过合法途径获得，若你提供的信息中含有其他人的个人信息，在向本小程序提供这些个人信息之前，您需确保您已经取得合法的授权，一旦您在使用我们服务的过程中提供此类信息，我们将认为该类信息均为您有权处理，不存在任何违反法律、法规或侵犯任何第三方合法权利的事由 / 瑕疵 / 场景。 若其中涉及儿童个人信息的，您需在发布前取得对应儿童监护人的同意，前述情形下监护人有权通过本政策第八条的途径联系我们，要求更正或删除涉及儿童个人信息的内容。</p><p><br></p><p>3. 若我们将信息用于本政策未载明的其他用途，或者将基于特定目的收集而来的信息用于其他目的时，或者我们主动从第三方处获取您的个人信息，均会事先征求您的同意。</p><p><br></p><p>4. 若我们从第三方处间接获取您的信息的，我们会在收集前明确以书面形式要求该第三方在已依法取得您同意后收集个人信息，并向您告知共享的信息内容，且涉及敏感信息的在提供给我们使用前需经过您的明确确认，要求第三方对个人信息来源的合法性和合规性作出承诺，如第三方有违反行为的，我们会明确要求对方承担相应法律责任；同时，我们的专业安全团队对个人信息会进行安全加固（包括敏感信息报备、敏感信息加密存储、访问权限控制）。我们会使用不低于我们对自身用户个人信息同等的保护手段与措施对间接获取的个人信息进行保护。</p><p><br></p><p>5. 如我们停止运营本小程序，我们将及时停止继续收集您个人信息的活动，将停止运营的通知以逐一送达或公告的形式通知您，并对我们所持有的与已关停业务相关的个人信息进行删除或匿名化处理。</p><p><br></p><p><br></p><p><br></p><p>三、对外提供信息</p><p><br></p><p>（一）共享</p><p><br></p><p>我们不会与本小程序服务提供者以外的公司、组织和个人共享您的个人信息，但以下情况除外：</p><p><br></p><p>1 ． 履行法定义务所必需的共享 ：我们可能会根据法律法规规定、诉讼、争议解决的必要，或按行政、司法机关依法提出的要求，以及其他法定义务履行的必需，共享您的个人信息。</p><p><br></p><p>2 ． &nbsp;取得您同意的情况下共享 ：获得您的明确同意后，我们会与其他方共享您的个人信息。</p><p><br></p><p>3 ． 与关联公司间共享 ：为便于我们与关联公司共同向您提供部分服务， 【基于本小程序向您提供产品和服务，保护关联公司或其他用户或公众的人身财产安全免遭侵害，您的个人信息可能会与我们的关联公司和 / 或其指定的服务提供商共享。】 我们只会共享必要的个人信息，且受本政策中所声明目的的约束，如果我们共享您的敏感个人信息或关联公司改变个人信息的使用及处理目的，将再次征求您的授权同意。</p><p><br></p><p>您可 点击此处 查看数据共享情况说明。</p><p><br></p><p>请注意，您在使用我们服务时自愿共享甚至公开分享的信息，可能会涉及您或他人的个人信息甚至敏感个人信息。请您更加谨慎地考虑并做出决定 。</p><p><br></p><p> </p><p><br></p><p>（二）委托处理</p><p><br></p><p>我们可能委托授权合作伙伴处理您的个人信息，以便授权合作伙伴代表我们为您提供某些服务或履行职能。我们仅会出于本政策声明的合法、正当、必要、特定、明确的目的委托其处理您的信息，授权合作伙伴只能接触到其履行职责所需信息，且我们将会通过协议要求其不得将此信息用于其他任何超出委托范围的目的。如果授权合作伙伴将您的信息用于我们未委托的用途，其将单独征得您的同意。</p><p><br></p><p>目前，我们委托的授权合作伙伴包括供应商、服务提供商和其他合作伙伴。我们将信息委托给支持我们业务的供应商、服务提供商和其他合作伙伴处理，这些支持包括受我们委托提供的技术基础设施服务、分析我们服务的使用方式、提供客户服务、支付便利或进行学术研究和调查。</p><p><br></p><p>为保障我们客户端的稳定运行、功能实现，使您能够使用和享受更多的服务及功能，我们的应用中会嵌入授权合作伙伴的 SDK 或其他类似的应用程序。我们会与授权合作伙伴约定严格的数据保护措施，令其按照本政策以及其他任何相关的保密和安全措施来处理个人信息。</p><p><br></p><p>您可 点击此处 查看我们接入的 SDK 详情。</p><p><br></p><p> </p><p><br></p><p>（三）转让</p><p><br></p><p>如果我们因合并、分立、解散、被宣告破产的原因需要转移个人信息的，我们会向您告知接收方的名称或者姓名和联系方式。接收方将继续履行本政策及其他法定义务。接收方变更原先的处理目的、处理方式的，会重新取得您的同意。</p><p><br></p><p> </p><p><br></p><p>（四）公开披露</p><p><br></p><p>我们仅会在以下情况下，公开披露您的个人信息：</p><p><br></p><p>1 ． 基于您的主动选择及其他单独同意的情况下，我们可能会公开披露您的个人信息；</p><p><br></p><p>2 ． &nbsp;如果我们确定您出现违反法律法规或严重违反与我们签署的相关协议及规则的情况，或为保护用户或公众的人身财产安全免遭侵害，我们可能披露关于您的个人信息 ，包括相关违规行为以及我们已对您采取的措施。</p><p><br></p><p> </p><p><br></p><p>四、您的权利</p><p><br></p><p>您可以通过以下方式查阅和管理您的信息， 我们会在符合法律法规要求的情形下响应您的请求 ：</p><p><br></p><p>（ 一）查阅、更正和补充</p><p><br></p><p>您有权通过登录小程序，进入“我的”页面，点击用户头像即可进行账号与安全设置的方式查阅、更正和补充您的信息。</p><p><br></p><p> </p><p><br></p><p>（二）删除</p><p><br></p><p>在以下情形中，您可以通过与我们官网列明的客服电话或者获取我们的联系方式后与我们联系，向我们提出删除个人信息的请求：</p><p><br></p><p>1 ． 如果我们处理个人信息的行为违反法律法规；</p><p><br></p><p>2 ． 如果我们收集、使用您的个人信息，却未征得您的明确同意；</p><p><br></p><p>3 ． 如果我们处理个人信息的行为严重违反了与您的约定；</p><p><br></p><p>4 ． 如果我们的处理目的已实现、无法实现或者为实现处理目的不再必要；</p><p><br></p><p>5 ． 如果我们停止提供产品或者服务，或者保存期限已届满。</p><p><br></p><p>6 ． 您希望删除您的个人信息的。</p><p><br></p><p>若我们决定响应您的删除请求，我们还将同时尽可能通知从我们处获得您的个人信息的主体，并要求其及时删除（除非法律法规另有规定，或这些主体已独立获得您的授权）。</p><p><br></p><p>当您或我们协助您删除相关信息后，因为适用的法律和安全技术限制，我们可能无法立即从备份系统中删除相应的信息，我们将安全地存储您的个人信息并限制对其的任何进一步的处理，直到备份可以清除或实现匿名化。</p><p><br></p><p> </p><p><br></p><p>（三）改变授权范围</p><p><br></p><p>您可以通过以下方式改变或者撤回您授权我们收集和处理您的个人信息的范围：</p><p><br></p><p>1 、 在“设置 - 位置信息”中管理小程序使用的位置权限授权。</p><p><br></p><p>2 、 在“设置 - 小程序已取得的信息”中管理相册、昵称、头像、手机号码授权。</p><p><br></p><p>对于您无法直接通过上述方式设置的授权，您可以通过客服联系进行修改， 但请注意，对于部分类型的个人信息，例如实现小程序的基本功能所必须的信息或者我们履行法律法规规定的义务所必需的信息，我们可能无法响应您改变授权范围的请求 。当您撤回授权后，我们将不再处理相应的个人信息。但您撤回授权的决定，不会影响我们此前基于您的授权而开展的个人信息处理。</p><p><br></p><p> </p><p><br></p><p>（四）注销账户</p><p><br></p><p>您可以通过以下方式申请注销您的账户：</p><p><br></p><p>您可以通过本政策提供的联系方式与我们联系申请注销您的账户。</p><p><br></p><p>在您主动注销账户之后，我们将停止为您提供产品或服务，并根据适用法律的要求删除或匿名化处理您的个人信息。</p><p><br></p><p> </p><p><br></p><p>（五）响应您的上述请求</p><p><br></p><p>对于您或可能的您的监护人、近亲属及其他有权主体向我们提出上述请求，以及中华人民共和国法律与其他适用法律规定的您的相关个人信息权利，您可以通过客服联系我们或直接向我们的个人信息保护专职部门发起投诉。我们将在 15 天内做出答复。</p><p><br></p><p>为保障您的账户安全和您的个人信息安全，您向我们提出上述请求时，我们可能会先验证您的身份（如增加账户核验、要求您提供书面请求或其他合理方式），然后再处理您的请求。</p><p><br></p><p>对于您合理的请求，我们原则上不收取费用，但对多次重复、超出合理限度的请求，我们将酌情收取一定费用。对于与您的身份不直接关联的信息、无合理理由重复申请的信息，或者需要过多技术手段（如需要开发新系统或从根本上改变现行惯例）、给他人合法权益带来风险或者不切实际的请求，我们可能会予以拒绝。</p><p><br></p><p> </p><p><br></p><p>五、信息的存储</p><p><br></p><p>（一）存储期限</p><p><br></p><p>我们只会在达成本政策所述目的所需的期限内保留您的个人信息，除非法律有强制的留存要求，我们会按照诉讼时效的法定要求对您的个人信息存储至少三年 。</p><p><br></p><p>我们判断个人信息的存储期限主要依据以下标准：</p><p><br></p><p>1 ． 完成与您相关的交易目的、维护相应交易及业务记录，以应对您可能的查询或投诉；</p><p><br></p><p>2 ． 保证我们为您提供服务的安全和质量；</p><p><br></p><p>3 ． 您是否同意更长的留存期间；</p><p><br></p><p>4 ． 是否存在关于保留期限的其他特别约定或法律法规规定；</p><p><br></p><p>5 ．保证我们在可能的诉讼案件中向法院进行举证；</p><p><br></p><p>在超出保留期间后，我们会根据适用法律的要求删除或匿名化处理您的个人信息。</p><p><br></p><p> </p><p><br></p><p>（二）存储位置</p><p><br></p><p>我们在中华人民共和国境内运营中收集和产生的个人信息，将 存储在中国境内 。以下情形下，我们会在履行法律规定的义务后，向可能的境外实体提供您的个人信息：</p><p><br></p><p>1 ． 适用的法律有明确规定；</p><p><br></p><p>2 ． 获得您的单独同意；</p><p><br></p><p>3 ． 您作为一方当事人的跨境电子商务交易及其他类型合同订立和履行所必需的。</p><p><br></p><p>针对以上情形，我们会按照本政策依法保护您的个人信息安全。</p><p><br></p><p> </p><p><br></p><p>（三）存储安全</p><p><br></p><p>1 ．数据保护技术措施</p><p><br></p><p>我们已采取符合业界标准、合理可行的安全防护措施保护您的信息，防止个人信息遭到未经授权访问、公开披露、使用、修改、损坏或丢失。例如，我们会使用加密技术提高个人信息的安全性，在您的浏览器与服务器之间交换数据时受 SSL 协议加密保护，我们提供 HTTPS 协议安全浏览方式；我们会使用受信赖的保护机制防止个人信息遭到恶意攻击；我们会部署访问控制机制，尽力确保只有授权人员才可访问个人信息。目前，我们的重要信息系统已经通过网络安全等级保护的三级测评。</p><p><br></p><p>2 ．数据保护管理组织措施</p><p><br></p><p>我们建立了行业内先进的以数据为核心、围绕数据生命周期进行的数据安全管理体系，从组织建设、制度设计、人员管理及产品技术的维度提升个人信息的安全性。我们已经设置了个人信息保护专职部门。我们通过培训课程和考试，不断加强员工对于保护个人信息重要性的认识。</p><p><br></p><p>3 ．个人信息安全事件的响应</p><p><br></p><p>如果我们的物理、技术或管理防护设施遭到破坏，导致信息被非授权访问、公开披露、篡改或毁坏，导致您的合法权益受损的，我们会及时启动应急预案，采取合理必要的措施，以尽可能降低对您个人的影响。如发生个人信息安全事件，我们还将按照法律法规的要求向您告知安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施。我们将以短信、电话、推送通知及其他合理渠道告知您，难以逐一告知的，我们会采取合理、有效的方式发布公告。同时，我们还将按照监管部门要求，上报个人信息安全事件的处置情况。</p><p><br></p><p>4 ．账户安全风险的防范</p><p><br></p><p>在使用小程序服务时，您不可避免地要向交易对方或潜在的交易对方披露自己的个人信息，如联络方式或联系地址。此外，您也可以通过我们的服务与第三方建立沟通、交流信息或分析内容。请您妥善保护自己的个人信息，仅在必要的情形下向他人提供，不轻信通过其他交易工具进行交易，以免信息被窃取甚至遭遇电信网络诈骗。</p><p><br></p><p>如您担心自己的个人信息尤其是您的账户或密码发生泄露， 请您立即联络我们的客服以便我们根据您的申请采取相应措施 。</p><p><br></p><p> </p><p><br></p><p>六、政策的更新</p><p><br></p><p>为给您带来更好的产品和服务体验，我们持续努力改进我们的产品、服务及技术。在新的服务及业务流程变更时，我们可能会更新我们的隐私政策以告知您具体的变化。但未经您明确同意，我们不会限制您按照本政策所享有的权利。</p><p><br></p><p>对于重大变更，我们还会提供更为显著的通知（包括我们会通过小程序公示的方式进行通知或向您提供弹窗提示）。</p><p><br></p><p>本政策所指的重大变更包括但不限于：</p><p><br></p><p>1 ． 产品的业务模式发生重大变化。如处理个人信息的目的、处理的个人信息类型、个人信息的使用方式；</p><p><br></p><p>2 ． 业务调整、交易并购引起的隐私政策的主体变更，新主体接收方变更原先的处理目的、处理方式；</p><p><br></p><p>3 ． 个人信息共享或公开披露的主要对象发生变化；</p><p><br></p><p>4 ． 用户个人</p>";
        String yh = "<p style=\"text-align: center;\"><strong>用户授权协议</strong></p><p>1</p><p>提示条款</p><p>您的信任对我们非常重要，我们深知用户信息对您的重要性，我们将按法律法规要求，采取相应安全保护措施，尽力保护您的用户信息安全可控。鉴于此，小程序产品与／或服务开发者（或简称“我们”）制定本《隐私政策》（下称“本政策 /本隐私政策”）并提醒您：</p><p>本政策适用于我们作为开发主体提供的小程序产品和服务。需要特别说明的是，本政策不适用于其他第三方向您提供的服务，第三方向您提供的服务适用其向您另行说明的隐私权政策。</p><p>在使用小程序各项产品或服务前，请您务必仔细阅读并透彻理解本政策，特别是以粗体/粗体下划线标识的条款，您应重点阅读，在确认充分理解并同意后再开始使用。如对本政策内容有任何疑问、意见或建议，您可通过本政策提供的各种联系方式与我们联系。</p><p>2</p><p>适用范围及定义</p><p>开发者：指小程序详情信息中标注的开发者主体。</p><p>用户信息：以电子或者其他方式记录的能够单独或者与其他信息结合识别特定主体身份或者反映特定主体活动情况的各种信息，包括用户的身份信息、行为数据、交易数据及个人信息等。</p><p>个人信息：指以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映特定自然人活动情况的各种信息。本政策中具体包括您（如您为自然人）及您提交的自然人相关信息，包括联系人、员工、法定代表人及其他您提交的自然人相关信息。</p><p>个人敏感信息：指包括居民身份证件号码、个人生物识别信息、银行账号、财产信息、行踪轨迹、交易信息、电话号码、精准定位信息、14岁以下（含）儿童的用户信息等（我们讲在本隐私政策中对具体个人敏感信息以粗体进行显著标识）。</p><p>3</p><p>我们如何收集和使用个人信息</p><p>1.实现小程序提供的服务</p><p>1.1.帮助您完成账户登录</p><p>当您进入小程序使用相关服务时，须授权支付宝/微信将您的用户编号以及页面提示的相关信息提供给我们，以便我们为您提供产品及/或服务。</p><p>为实现向您提供我们产品及/或服务的附加功能，您可选择另行单独授权我们收集、使用必要的信息。</p><p>1.2.为您提供商品及服务信息展示和搜索</p><p>在您使用我们服务过程中，为识别账号异常状态、了解产品适配性、向您提供更契合您需求的页面展示和搜索结果，我们可能会自动收集您的使用情况并存储为网络日志信息，包括：</p><p>设备信息：我们会根据您在软件安装及/或使用中的具体操作，接收并记录您所使用的设备相关信息（包括设备硬件型号、操作系统版本）</p><p>服务日志信息：当您使用我们的网站或客户端提供的产品或服务时，我们会自动收集您对我们服务的详细使用情况，作为服务日志保存，包括浏览、点击查看、搜索查询、收藏、添加、交易、售后、发布信息，以及IP地址、浏览器类型、电信运营商、使用语言、访问日期和时间。</p><p>请注意，单独的设备信息、服务日志信息及您搜索的关键词信息是无法识别您的身份。我们有权以任何的目的对其进行使用；如果我们将这类非个人信息、搜索关键词信息与您的其他信息相互结合使用并可以识别您的身份时，则在结合使用期间，我们会将这类非个人信息及您的搜索关键词信息作为您的用户信息，与您的搜索历史记录一同按照本隐私政策对其进行处理与保护。除取得您授权或法律法规另有规定外，我们会将这类信息做匿名化、去标识化处理。</p><p>1.3.帮您完成交易</p><p>当您使用我们的服务进行交易时，我们会收集您的位置信息，用于展示附近门店、为您匹配点餐的门店、选择储值门店。</p><p>当您选择配送服务时，您需至少提供姓名、性别、联系方式、收货地址，我们收集这些信息是为了帮助您完成订单的交付。</p><p>如果我们委托第三方协助您完成交易时，我们会将订单信息或您的用户信息等共享给第三方，否则我们将无法帮助您完成相关交易。合作的第三方可能第三方支付公司、第三方配送公司等，为完成订单的交付，基于某些业务的法律要求，可能会要求您完成实名认证，我们会提供信息协助您完成实名认证。</p><p>1.4.成为会员</p><p>当你选择注册成为我们的会员时，您需要根据页面提示授权我们获取您主动提供的手机号相关信息，或以支付宝/微信账号登录时，授权我们获取账号相关手机号、昵称、头像相关信息，具体授权字段以页面展示为准。如您拒绝加入会员，我们仅收集您的昵称、头像用于在多人餐点场景下对您提供点餐服务；以及您的位置信息用于为您匹配点餐门店。</p><p>您可以选择进入个人中心完善您的个人信息，包括您的姓名、性别、生日，在您拒绝入会场景，您也可以通过进入个人中心，点击账号-绑定手机号进行会员注册。</p><p>我们将通过手机号识别您的会员身份，按照相关会员服务协议为您提供会员服务，包括但不限于推荐优惠信息、提供会员点餐服务、享受会员优惠价等，我们会根据您提供的信息对您的喜好进行分析，并向您提供个性化推荐，从而向您推荐您可能感兴趣的商品或向您发送优惠信息，您同意我们通过您提供的手机号向您发送前述商业短信。</p><p>1.5. 提供个性化服务</p><p>我们将根据您提供的个人信息对您的喜好进行分析，您同意我们使用您个人信息向您推销/推广我们或合作方的产品、服务。如您拒绝接受此类商业推广，可按推广内容中提供的方式进行退订或本协议提供的方式联系我们进行退订。</p><p>2.改进我们的产品与/或服务</p><p>我们会收集您的订单信息、浏览信息进行数据分析以提高我们的系统服务</p><p>3.客服及争议处理</p><p>当您与我们联系或提出其他处理申请时，为了保障您的账户及系统安全，我们需要您提供必要的个人信息以核验您的身份。</p><p>为便于与您联系、尽快帮助您解决问题或记录相关问题的处理方案及结果，我们可能会保存您与我们的通信/通话记录及相关内容（包括账号信息、店铺信息、软硬件设备信息、订单信息、您为了证明相关事实提供的其他信息，或您留下的联系方式信息），如果您针对具体订单进行咨询、投诉或提供建议的，我们会使用您的账号信息和订单信息。当您反映的问题需要第三方服务提供方核实处理的，您允许我们将必要的账号信息和订单信息等提供给对应的第三方服务提供方。</p><p>为了提供服务及改进服务质量的合理需要，我们还可能使用的您的其他信息，包括您与客服联系时您提供的相关信息，您参与问卷调查时向我们发送的问卷答复信息。</p><p>5.帮助您完成对服务或产品的评价</p><p>为帮助您完成对服务或产品的评价，我们会获取您的相机、相册权限，用于您通过拍照、上传图片的方式对您所使用、消费的产品或服务进行评价。</p><p>6.其他</p><p>6.1.若您提供的信息中含有其他用户的个人信息，在向我们提供这些个人信息之前，您需确保您已经取得合法的授权。若其中涉及儿童个人信息的，您需在发布前取得对应儿童监护人的同意，前述情形下监护人有权通过本政策第八条的途径联系我们，要求更正或删除涉及儿童个人信息的内容。</p><p>6.2.若我们将信息用于本政策未载明的其他用途，或者将基于特定目的收集而来的信息用于其他目的，或者我们主动从第三方处获取您的个人信息，均会事先获得您的同意。</p><p>4</p><p>2.1.我们会根据本隐私政策的约定并为实现我们的产品与/或服务功能对所收集的用户信息进行使用。</p><p>2.2.在收集您的用户信息后，我们可以通过技术手段对数据进行匿名化处理，匿名化处理的信息将无法识别主体。您了解并同意，在此情况下我们有权使用已经匿名化的信息；并在不透露您用户信息的前提下，我们有权对用户数据库进行分析并予以商业化的利用。</p><p>2.3.可能从第三方获取您授权共享的账户信息（头像、昵称），并在您同意本隐私政策后将您的第三方账户与您的账户绑定，使您可以通过第三方账户直接登录并使用我们的产品与/或服务。</p><p>2.4.共享：我们承诺对您的信息进行严格保密。除非法律法规及监管部门另有规定外，我们仅以下情形与第三方共享您的信息，第三方包括我们的关联公司及其他合作伙伴。如果为了向您提供服务而需要将您的信息共享至第三方，我们将评估该第三方收集信息的合法性、正当性、必要性。我们将要求第三方对您的信息采取保护措施，并且严格遵守相关法律法规与监管要求。另外，我们会按照法律法规及国家标准的要求以确认协议、具体场景下文案确认、弹窗提示等形式征得您的同意，或确认第三方已经征得您的同意。</p><p>2.4.1.为识别您的会员身份，我们需要将您的会员信息同步至我们于不同平台、端口、网站开设之门店，确保您的会员权益得到行使时，此类情形下，我们可能将您的个人信息与我们的关联公司、合作伙伴共享，具体共享主体您可在我们向您获取授权时页面展示的信息查看；</p><p>2.4.2 .为确保向您提供小程序所展示的排队、点餐、找店等服务，我们的应用中会嵌入合作伙伴的SDK或其他类似的应用程序。我们会与合作伙伴约定严格的数据保护措施，令其按照本政策以及其他任何相关的保密和安全措施来处理个人信息。</p><p>如下是我们接入的SDK详情：</p><p>* 腾讯地图</p><p>* SDK运营主体名称：深圳市腾讯计算机系统有限公司</p><p>* 功能：展示地图信息</p><p>* 收集个人信息类型：地理位置信息、网络类型、设备信息（不同版本收集的设备信息有所不同）：安卓版将收集手机屏幕密度、尺寸、设备型号、系统版本； IOS版将收集IDFV、手机屏幕密度、尺寸、设备型号、系统版本</p><p><br></p><p>2.4.3 事先获得您明确同意的情况下，我们会在法律法规允许且不违背公序良俗的范围内，依据您的授权范围与第三方共享您的信息。</p><p>2.4.4 在法定情形下的共享：我们可能会根据法律法规规定、诉讼争议解决需要，或按行政、司法机关依法提出的要求，对外共享您的用户息。</p><p>2.4.5与关联公司共享：为便于我们基于关联账号共同向您提供服务，推荐您可能感兴趣的信息或保护关联公司或其他用户或公众的人身财产安全免遭侵害，您的用户信息可能会与我们的关联公司共享。我们只会共享必要的用户信息，且受本隐私政策中所声明目的约束，如果我们共享您的个人敏感信息或关联公司改变个人信息的使用及处理目的，将再次征求您的授权同意。</p><p><br></p><p>2.5转让：我们不会将您的用户信息转让给任何公司、组织和个人，但以下情况除外：</p><p>2.5.1在获取明确同意的情况下转让：获得您的明确同意后，我们会向其他方转让您的用户信息；</p><p>2.5.2公司发生合并、收购或破产清算情形，或其他涉及合并、收购或破产清算情形时，如涉及到个人信息转让，我们会要求新的持有您个人信息的公司、组织继续受本政策的约束，否则我们将要求该公司、组织和个人重新向您征求授权同意。</p><p>2.6信息披露：我们仅会在以下情况下，向他人披露您的用户信息：</p><p>2.6.1获得您明确同意或基于您的主动选择，我们会向他人披露您的用户信息；</p><p>2.6.2 我们可能会基于法律法规的要求披露您的个人信息。</p><p>5</p><p>我们如何保护您的用户信息安全</p><p>3.1我们已采取符合业界标准、合理可行的安全防护措施保护您提供的用户信息安全，防止用户信息遭到未经授权访问、公开披露、使用、修改、损坏或丢失。</p><p>3.2互联网并非绝对安全的环境，请注意，您在使用我们服务时自愿共享甚至公开分享的信息，可能会涉及您或他人的用户信息甚至个人敏感信息。请您更加谨慎地考虑，是否在使用我们的服务时共享甚至公开分享相关信息。</p><p>3.3在不幸发生用户信息安全事件后，我们将按照法律法规的要求向您告知：安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。事件相关情况我们将以邮件、信函、电话、推送通知等方式告知您，难以逐一告知用户信息主体时，我们会采取合理、有效的方式发布公告。同时，我们还将按照监管部门要求，上报用户信息安全事件的处置情况。</p><p>6</p><p>您如何管理您的用户信息</p><p>您可以通过以下方式访问及管理您的用户信息：</p><p>4.1访问您的用户信息</p><p>您可以登录您的账户后查阅您的用户信息。</p><p>4.2修改或补充您的用户信息</p><p>您可以登录您的账户信息后在个人信息模块修改或补充您的个人信息，如昵称、生日、性别。</p><p>4.3删除您的用户信息</p><p>您可以通过“选择联系客服”的方式向我们要求删除您的部分信息。</p><p>在以下情形中，您可以向我们提出删除用户信息的请求：</p><p>4.3.1如果我们处理用户信息的行为违反法律法规；</p><p>4.3.2如果我们收集、使用您的用户信息，却未征得您的明确同意；</p><p>4.3.3如果我们处理您的信息的行为严重违反了与您的约定；</p><p>4.3.4如果您不再使用我们的产品或服务，或您主动停止使用我们产品与／或服务；</p><p>4.3.5如果我们永久不再为您提供产品或服务；</p><p>4.3.6其他您决定要求删除您的信息的情形。</p><p>若我们决定响应您的删除请求，我们还将同时尽可能通知从我们处获得您的用户信息的主体，并要求其及时删除（除非法律法规另有规定，或这些主体已独立获得您的授权）。</p><p>若您选择要求我们删除您的信息，服务可能无法向您继续提供，在我们明确向您告知后您仍决定删除的，由此产生的服务中止、中断、终止，我们不承担任何责任，一切后果由您自行承担</p><p>当您或我们协助您删除相关信息后，因为适用的法律和安全技术，我们可能无法立即从备份系统中删除相应的信息，我们将安全地存储您的个人信息并将其与任何进一步处理隔离，直到备份可以清除或实现匿名。</p><p>4.4注销您的账户</p><p>您可以通过本协议提供的联系方式与我们联系申请注销您的账户：</p><p>在您主动注销账户之后，我们将停止为您提供产品或服务，并根据适用法律的要求删除您的个人信息，或对其进行匿名化处理。</p><p>4.5响应您的上述请求</p><p>为保障安全，您可能需要提供书面请求，或以其他方式证明您的身份。我们可能会先要求您验证自己的身份，然后再处理您的请求。</p><p>7</p><p>信息储存地点及期限</p><p>5.1我们在中华人民共和国境内运营中收集和产生的用户信息，存储在中国境内，以下情形除外：</p><p><br></p><p>5.1.1法律法规有明确规定；</p><p><br></p><p>5.1.2获得您的明确授权；</p><p><br></p><p>5.1.3您作为一方当事人的跨境电子商务交易及其他类型合同订立和履行所必需的。</p><p><br></p><p>针对以上情形，我们会按照本政策依法保护您的个人信息安全。</p><p><br></p><p>8</p><p>未成年人的个人信息保护</p><p><br></p><p>我们非常重视对未成年人的个人信息保护。我们的服务主要面向成年人。如您为未成年人的，建议您请您的父母或监护人仔细阅读本隐私政策，并在征得您的父母或监护人同意的前提下使用我们的服务或向我们提供信息。</p><p><br></p><p>对于经父母或监护人同意使用我们的产品或服务而收集未成年人个人信息的情况，我们只会在法律法规允许、父母或监护人明确同意或者保护未成年人所必要的情况下使用、共享、转让或披露此信息。</p><p><br></p><p>如果我们发现自己在未事先获得可证实的父母或法定监护人同意的情况下收集了未成年人的个人信息，则会设法尽快删除相关数据。</p><p><br></p><p>9</p><p>如何联系我们</p><p><br></p><p>如果您对于本隐私政策或在使用我们服务时对于您的用户信息或隐私情况有任何问题，请联系我们的客服并作充分描述，我们将尽力解决。</p><p><br></p><p>您可以通过小程序主体信息提供的联系方式与我们联系</p><p><br></p><p>10</p><p>本隐私政策如何更新</p><p><br></p><p>根据市场经营状况的变更以及国家法律法规的变更等情况，我们的隐私政策可能发生改变。本政策发生改变将不需要征得您的明确同意，但我们会在本政策发生改变后，及时告知您，您也可以随时查阅本政策以便了解政策现状。在前述情况下，若您继续使用我们的服务，即表示同意接受修改后的本政策并受之约束。</p><p><br></p><p>11</p><p>对第三方责任的声明</p><p><br></p><p>请您注意，您的交易相对方、您访问的第三方网站经营者、通过我们接入的第三方服务和由我们处接收您的用户信息的第三方可能有自己的隐私权保护政策；当您查看第三方创建的网页或使用第三方开发的应用程序时，这些第三方可能会防止他们自己的Cookie或网络Beacon，这些Cookie或网络Beacon不受我们的控制，且它们的使用不受本政策的约束。我们会努力去要求这些主体对您的用户信息采取保护措施，建议您与他们联系以获得关于他们隐私政策的详细情况，如您发现这些第三方创建的网页或第三方开发的应用程序存在风险时，建议您终止相关操作以保护您的合法权益。</p>";

        String protocal = ys;
        if(type.equals("2"))protocal = yh;

        JSONObject data = new JSONObject();
        data.put("protocal", protocal);
        AjaxResult ajaxResult = AjaxResult.success(data);
        return ajaxResult;
    }

}
